package model.rotations;

import model.cubos.CuboMagico;

/**
 * Possui as possíveis rotações do {@link CuboMagico}.
 * 
 * @author Joeffison Silverio de Andrade, 21011853, joeffisonsa@gmail.com
 * @version 1.0
 * @since 12/11/11 08:25
 */
public interface Rotations {
        
        public void rotatesUpRight(CuboMagico cubo);
        
        public void rotatesUpLeft(CuboMagico cubo);
        
        public void rotatesUpTwice(CuboMagico cubo);
        
        public void rotatesDownRight(CuboMagico cubo);
        
        public void rotatesDownLeft(CuboMagico cubo);
        
        public void rotatesDownTwice(CuboMagico cubo);
        
        public void rotatesForwardRight(CuboMagico cubo);
        
        public void rotatesForwardLeft(CuboMagico cubo);
        
        public void rotatesForwardTwice(CuboMagico cubo);
        
        public void rotatesBehindRight(CuboMagico cubo);
        
        public void rotatesBehindLeft(CuboMagico cubo);
        
        public void rotatesBehindTwice(CuboMagico cubo);
        
        public void rotatesRightFaceToRight(CuboMagico cubo);
        
        public void rotatesRightFaceToLeft(CuboMagico cubo);
        
        public void rotatesRightFaceToRightTwice(CuboMagico cubo);
        
        public void rotatesLeftFaceToRight(CuboMagico cubo);
        
        public void rotatesLeftFaceToLeft(CuboMagico cubo);
        
        public void rotatesLeftFaceToLeftTwice(CuboMagico cubo);
        
        public void executa(CuboMagico cubo, String [] operacoes);
        
}
